Unlike the traditional client/server system, a P2P system is characterized by operations between peers. Each peer in the P2P system can serve other peers and be served by other peers. Depending on the topology, P2P systems are sorted into these types: centralized topology, decentralized unstructured topology, decentralized structured topology (also known as DHT network), and hybrid topology.
The current prevalent topology of P2P systems is a Distributed Hash Table (DHT) network. A majority of applications in the P2P system are based on the DHT network. In such systems, a unique identifier (node ID) of a node is obtained through Hash operation according to unique attributes such as an IP address of the node. The data item corresponding to the node ID is expressed by a key pair <key, value>, where a key is an index to a data item, and a value may a locating address (for example, IP or URL) of the data item. Through Hash operation, a unique identifier is assigned to a data index key, and the key value pair corresponding to this key is stored into the node nearest to this key identifier. The unique identifier may be obtained through Hash operation after the key value pair is found. Through the unique identifier, the nearest node is found (the nearest node stores the address of the data item).
Meanwhile, the P2P system is a self-organized network. In this network, a node can join or quit the network randomly. The randomness leads to inaccuracy of locating the resources and churning of the network. The extent of network churn directly affects the efficiency of the route discovery method. Network churn is caused by joining, quitting, failure, or migration of a node; or by a concurrent joining process or network splitting. The way of handling different network churns in the DHT route searching method of the P2P network directly affects the route efficiency and the load overhead of the whole P2P network.
Two solutions to P2P network churn are provided in the prior art.